package com.example.UI;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ListView;
import androidx.appcompat.app.AppCompatActivity;
import com.example.UI.database.CourseMessage;
import com.example.UI.entity.Course;
import com.example.UI.list.CourseArrayAdapter;
import com.example.ui.R;
import java.util.List;

/**
 * CourseActivity 类继承自 AppCompatActivity，用于展示课程列表和管理与课程相关的操作。
 */
public class CourseActivity extends AppCompatActivity {
    // 成员变量声明
    private ListView listView; // 用于显示课程列表的ListView
    private CourseMessage dbHelper; // 数据库帮助类，用于操作课程数据库
    private List<Course> courses; // 存储从数据库获取的所有课程信息
    private CourseArrayAdapter courseArrayAdapter; // 用于ListView的数据适配器
    private Button buttonStudents, buttonCourses, buttonProfile; // 底部导航按钮

    /**
     * onCreate 方法是活动生命周期中的一个回调，当活动第一次创建时执行。
     * 这里进行了界面设置、数据库操作和按钮监听器的设置。
     *
     * @param savedInstanceState 包含先前活动的保存状态，可用于恢复状态。
     */
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_course); // 设置活动的布局

        // 初始化成员变量
        dbHelper = new CourseMessage(this); // 初始化数据库帮助类
        listView = findViewById(R.id.course_list); // 获取ListView组件

        // 初始化底部导航按钮，并设置其点击事件监听器
        buttonStudents = findViewById(R.id.buttonStudents);
        buttonStudents.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // 当按钮被点击时，启动StudentActivity
                Intent courseIntent = new Intent(CourseActivity.this, StudentActivity.class);
                startActivity(courseIntent);
            }
        });

        buttonProfile = findViewById(R.id.buttonProfile);
        buttonProfile.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // 当按钮被点击时，启动InformationActivity
                // 这里应该添加传递当前用户信息到InformationActivity的逻辑
                Intent courseIntent = new Intent(CourseActivity.this, InformationActivity.class);
                // TODO: Add logic to pass current user information to InformationActivity
                startActivity(courseIntent);
            }
        });

        // 获取所有课程信息，并使用CourseArrayAdapter适配器绑定到ListView
        courses = dbHelper.getAllCourses(); // 从数据库获取所有课程
        courseArrayAdapter = new CourseArrayAdapter(this, courses); // 创建适配器实例
        listView.setAdapter(courseArrayAdapter); // 将适配器设置到ListView
    }
}